﻿using System;

namespace UnitOfWork.Interfaces
{
	public interface IUnitOfWork : ILinqProvider, IDisposable
	{
		void RegisterNew<TEntity>(TEntity entity) where TEntity : class;
		void RegisterUnchanged<TEntity>(TEntity entity) where TEntity : class;
		void RegisterChanged<TEntity>(TEntity entity) where TEntity : class;
		void RegisterDeleted<TEntity>(TEntity entity) where TEntity : class;

		void Save();
	}
}